package stores;


import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;

import workspace.JdbcTools;
import workspace.Workspace;
import beans.Esemeny;

public class EsemenyNaploStoreImpl implements EsemenyNaploStore {

	@Override
	public List<Esemeny> loadEsemenyNaplo(Workspace workspace) throws SQLException {
		PreparedStatement ps = null;
		ResultSet rs = null;
		List<Esemeny> esemenyLista = new LinkedList<Esemeny>();
		Esemeny esemeny = null;
		
		try
		{
			ps = workspace.getPreparedStatement("SELECT EN.WRITTEN, EN.WRITER, OP.FELHASZNALONEV, EN.ESEMENY ESEMENY FROM ESEMENYNAPLO EN JOIN OPERATOR OP ON EN.WRITER=OP.ID ORDER BY WRITTEN DESC");
			rs = ps.executeQuery();
			while(rs.next())
			{
				esemeny = buildEsemeny(rs);
				esemenyLista.add(esemeny);
			}
			return esemenyLista;
		
        } finally {
        	if(ps != null)
			{
				ps.close();
			}
			if(rs != null)
			{
				rs.close();
			}
        }
	}
	
	private Esemeny buildEsemeny(ResultSet rs) throws SQLException
	{
		Esemeny newEsemeny = new Esemeny();
		int i = 1;
		Date tempDate = JdbcTools.getTimestamp(rs, i++);
		Calendar written = Calendar.getInstance();
		written.setTime(tempDate);
		newEsemeny.setWritten(written);
		newEsemeny.setModositoId(rs.getLong(i++));
		newEsemeny.setModositoNev(rs.getString(i++));
		newEsemeny.setEsemeny(rs.getString(i++));
		return newEsemeny;
	}

}
